package com.llt.api.service;

import com.llt.api.domain.dto.ExamQueryDTO;
import com.llt.api.domain.dto.ExamRankDTO;
import com.llt.api.domain.dto.QuestionQueryDTO;
import com.llt.api.domain.vo.QuestionDetailVO;
import com.llt.api.fallback.RemoteUserFallback;
import com.llt.common.core.constants.Constants;
import com.llt.common.core.domain.R;
import com.llt.common.core.domain.TableDataInfo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;

/**
 * @Author: llt
 * @Date: 2025-08-06 上午10:17
 */
@FeignClient(contextId = "RemoteUserService", value = Constants.USER_SERVICE, fallback = RemoteUserFallback.class)
public interface RemoteUserService {

    /**
     * 获取问题列表（支持模糊查询）
     */
    @GetMapping("/question/semiLogin/list")
    TableDataInfo list(QuestionQueryDTO dto);

    /**
     * 根据问题id获取问题详情
     */
    @GetMapping("/question/detail")
    R<QuestionDetailVO> detail(Long questionId);

    /**
     * 获取竞赛列表
     */
    @GetMapping("/exam/semiLogin/redis/list")
    TableDataInfo redisList(ExamQueryDTO dto);

    /**
     * 获取个人竞赛排名
     */
    @GetMapping("/exam/rank/list")
    TableDataInfo rankList(ExamRankDTO examRankDTO);

    /**
     * 我的竞赛列表
     */
    @GetMapping("/user/exam/list")
    TableDataInfo list(ExamQueryDTO examQueryDTO);
}
